/*  可以发送异步ajax请求的函数模块
    这个函数封装了axios库
    函数的返回值是promise对象
    优化1: 统一处理请求异常 ? 
      1.在外层包一个自己创建的promise对象
      2.请求出错时不是reject(), 而是显示错误提示

    // 优化2: 异步得到的不是response,而是response.data
        代码: 请求成功resolve时,resolve(response.data)

*/

import { message } from 'antd';
import axios from 'axios'

// 参数可能没有,默认空{ }, 请求方法默认GET
export default function ajax(url, data={}, type="GET") {  
    return new Promise((resolve,reject) => {
        let promise
        // 1.执行异步ajax请求
        if (type === "GET") {
          //发送get请求
          promise = axios.get(url, {
            params: data, // 指定请求参数
          });
        } else {
          //POST请求
          promise = axios.post(url, data);
        }
        // 2.如果成功,调用resolve(value)
        promise.then(response => {
          // resolve(response);
          resolve(response.data);
        // 3.如果失败了， 不调用reject（reason),而是提示错误信息
        }).catch(error => {
            message.error('请求出错' + error.message)
        })
    })
}
